import Taro from '@tarojs/taro'
import { login } from '../../services/user'

const namespace = 'login'
export { namespace }
export default {
  namespace,
  state: {
    isLogin: false
  },
  effects: {
    *login({ payload }, { call, put }) {
      // console.log('进入函数....')
      const params = {
        userId: Taro.getStorageSync('userId'), // Taro.getStorageSync('userId') '18056'
        shareId: payload.shareId,
        platform: Taro.getSystemInfoSync().platform,
        code: ''
      }
      if (!params.userId) {
        let res = yield Taro.login()
        if (res && res.code) {
          params.code = res.code
        }
        // console.log(params)
      }
      try {
        const res = yield call(login, params)
        // console.log(res)
        if (res.code === 0) {
          const { user, token } = res.data
          if (user) {
            Taro.setStorageSync('user', user)
            Taro.setStorageSync('userId', user.id)
            // this.setMsgCount(user)
            // if (!userId) {
            //     try {
            //         Taro.setStorageSync('userId', user.id)
            //     } catch (error) {
            //         console.log(error)
            //     }
            // }
            Taro.setStorageSync('token', token)
            // return true
            yield put({
              type: 'setState',
              payload: {
                isLogin: true
              }
            })
          } else {
            Taro.setStorageSync('userId', res.data.userId)
            Taro.setStorageSync('token', token)
            // return false
          }
        }
      } catch (error) {}
    }
  },
  reducers: {
    setState(state, { payload }) {
      return { ...state, ...payload }
    }
  }
}
